package co.inventario.modelo.negocio;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import co.inventario.datos.sqlserver.MovimientoKardexDAOSQLServer;
import co.inventario.entidad.MovimientoKardexDTO;

public class MovimientoKardexNegocio {

	public void crear(MovimientoKardexDTO movimientoKardexDTO, Connection connection) throws Exception, SQLException {
		MovimientoKardexDAOSQLServer movimientoKardexDAOSQLServer = new MovimientoKardexDAOSQLServer();
		MovimientoKardexDTO movimientoKardexDTOConsultado = movimientoKardexDAOSQLServer.consultarPorNombre(movimientoKardexDTO, connection);
		if (movimientoKardexDTOConsultado == null) {
			movimientoKardexDAOSQLServer.crear(movimientoKardexDTO, connection);
		} else {
			throw new Exception("El Movimiento de kardex que intenta crear, ya existe.");
		}
	}

	public void actualizar(MovimientoKardexDTO movimientoKardexDTO, Connection connection) throws Exception, SQLException {
		MovimientoKardexDAOSQLServer movimientoKardexDAOSQLServer = new MovimientoKardexDAOSQLServer();
		MovimientoKardexDTO movimientoKardexDTOConsultado = movimientoKardexDAOSQLServer.consultarPorCodigo(movimientoKardexDTO, connection);
		if (movimientoKardexDTOConsultado != null) {
			movimientoKardexDAOSQLServer.actualizar(movimientoKardexDTO, connection);
		} else {
			throw new Exception("El Movimiento de kardex que intenta actualizar, no existe.");
		}
	}

	public MovimientoKardexDTO consultarPorCodigo(MovimientoKardexDTO movimientoKardexDTO, Connection connection) throws Exception, SQLException {
		MovimientoKardexDAOSQLServer movimientoKardexDAOSQLServer = new MovimientoKardexDAOSQLServer();
		MovimientoKardexDTO movimientoKardexDTOConsultado = movimientoKardexDAOSQLServer.consultarPorCodigo(movimientoKardexDTO, connection);
		return movimientoKardexDTOConsultado;
	}

	public ArrayList<MovimientoKardexDTO> consultarTodo(Connection connection) throws Exception, SQLException {
		MovimientoKardexDAOSQLServer movimientoKardexDAOSQLServer = new MovimientoKardexDAOSQLServer();
		ArrayList<MovimientoKardexDTO> movimientoKardexDTOLista = movimientoKardexDAOSQLServer.consultarTodo(connection);
		return movimientoKardexDTOLista;
	}
}
